#ifndef _p2p_h
#define _p2p_h

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<syslog.h>
#include<errno.h>
#include<sys/socket.h>
#include<netinet/ip.h>
#include<netinet/in.h>
#include<net/if.h>
#include<signal.h>
#include<fcntl.h>
#include<sys/types.h>
#include<pthread.h>
#include<netinet/in_systm.h>
#include<sys/time.h>
#include<arpa/inet.h>
#include<sys/wait.h>
#include<sys/un.h>
#include<sys/stat.h>
#include<sys/select.h>
#include<sys/uio.h>
#include<netdb.h>
#include <linux/sockios.h>
#include <sys/ioctl.h>
#define TASK 3

struct tasklist{
	int task;
	int flag;/*  0, 1, 2*/
	uint32_t host;
	int pfseek;
	int size;
};

struct hostlist{
	uint32_t  host;
	int  task;
	int  on; /* 0, 1*/
	int counts;
	int hfseek;
	int size;
};


void err_quit(char *);
void *updataHostlist(void *arg);
struct addrinfo *host_serv(const char *host, const char *serv, int family, int socktype);
char *Sock_ntop_host(const struct sockaddr *sa, socklen_t salen);
void *recvData(void *arg);
#endif
